package com.framework.constantes;

import com.softcomputo.commons.exception.ValidacionRuntimeException;

public interface IVias_ingreso {

    public static final String SERVICE_LOCATOR = "SERVICE_LOCATOR";
    public static final String ADMISION_PACIENTE = "ADMISION_PACIENTE";
    public static final String CITA_PACIENTE = "CITA_PACIENTE";
    public static final String OPCION_VIA_INGRESO = "OPCION_VIA_INGRESO";
    public static final String TIPO_URGENCIA = "tipo_urgencia";
    public static final String VIA_INGRESO = "via_ingreso";
    public static final String CAUSAS_EXTERNAS = "causas_externas";
    public static final String DIAGNOSTICO_PRINCIPAL = "diag_principal";
    public static final String DIAGNOSTICO_RELACIONADO1 = "diag_relacionado1";
    public static final String DIAGNOSTICO_RELACIONADO2 = "diag_relacionado2";
    public static final String PADRE = "padre";
     public static final String PADRE_TABS = "padre_tabs";
    public static final String INFORMACION_CLINICA = "informacion_clinica";

    public static final String ENFERMERA_SIGNOS_PACIENTE = "ENFERMERA_SIGNOS_PACIENTE";

	// VIAS DE INGRESO QUE ESTAN ACTUALMENTE PLASMADAS EN EL SOFTWARE
    public static final String URGENCIA = "1";

    public static final String CONSULTA_EXTERNA = "2";

    public static final String HIPERTENSO_DIABETICO = "6";

    public static final String HC_MENOR_2_MESES = "7";

    public static final String HC_MENOR_2_MESES_2_ANOS = "8";

    public static final String HC_MENOR_2_ANOS_5_ANOS = "9";

    public static final String HISC_DETECCION_ALT_MENOR_5A_10A = "10";

    public static final String HC_DETECCION_ALT_EMBARAZO = "11";

    public static final String ADULTO_MAYOR = "12";

    public static final String ALTERACION_JOVEN = "13";

    public static final String PLANIFICACION_FAMILIAR = "14";

    public static final String PSICOLOGIA = "15";

    public static final String PSIQUIATRIA = "16";

    public static final String ODONTOLOGIA2 = "17";

    public static final String URGENCIA_ODONTOLOGICO = "18";

    public static final String ODONTOLOGIA = "19";

    public static final String VIA_VACUNACION = "39";

    public static final String SALUD_ORAL = "36";

    public static final String MEDICAMENTOS_PYP = "40";

    public static final String LABORATORIOS = "27";

    public static final String CONSULTA_ESPECIALIZADA = "41";

    public static final String REMITIDO = "3";

    public static final String CITOLOGIA = "44";

    /* imagenes diagnosticas */
    public static final String ECOGRAFIA = "28";

    public static final String RAYOS_X = "29";

    public static final String ELECTROENCEFALOGRAMA = "30";

    public static final String ENDOSCOPIA = "31";

    public static final String TAC = "32";

    public static final String RESONANCIA_MAGNETICA = "33";

    public static final String TERAPIA_FISICA = "42";

    public static final String TERAPIA_RESPIRATORIA = "43";

    public static final String HISTORIA_CLINICA_UCI = "20";
    public static final String HISTORIA_CLINICA_UCI2 = "21";

    public static final String VISITA_DOMICILIARIA = "22";

    public static final String HC_AIEPI_2_MESES = "23";

    public static final String HC_AIEPI_2_MESES_5_ANOS = "24";

    public static final String HISTORIA_CLINICA_RECIEN_NACIDO = "25";

    public static final String SERVICIOS_AMIGABLES = "37";

    public static final String SERVICIOS_AMBULATORIOS = "38";

    public static final String HOSPITALIZACIONES = "26";

    public static final String CONTROL_TUBERCULOSIS = "34";

    public static final String MEDICAMENTOS_TUBERCULOSIS = "M34";

    public static final String CONTROL_LEPRA = "35";

    public static final String LABORATORIOS_PYP = "46";
    
    public static final String SALA_PARTO = "53";

    // VIA DE INGRESO ESPECIAL DE TRIAGE
    public static final String FORMULARIO_TRIAGE = "FORMULARIO_TRIAGE";

    // TIPOS DE URGENCIAS
    public static final String TIPO_URGENCIA_OBSTETRICA = "81";
    public static final String TIPO_URGENCIA_GENERAL = "80";

    // TIPOS DE HISTORIAS DE CONSULTA EXTERNA
    public static final String TIPO_HC_CONSULTA_EXTERNA = "1";
    public static final String TIPO_HC_URGENCIAS = "2";
    public static final String TIPO_HC_HOSPITALIZACIONES = "3";

    // VIA DE INGRESO ESPECIAL DE ROL DE ENFERMERA JEFE
    public static final String ENFERMERIA_PYP = "99";

    public static final String MODULO_ADMISIONES_PYP = "MODULO_ADMISIONES_PYP";

    public static final String MODULO_CUALQUIER_SERVICIO = "MODULO_CUALQUIER_SERVICIO";

    /**
     * Con esta via de ingreso identifico que es una ecografica Ginecostetrica
     * 881435 - Este es el cups de la Ecografia Ginecostetrica
     *
     * @author Luis Miguel
	 *
     */
    public static final String ECOGRAFIA_GINECOSTETRICA = "01";

    public static final String CODIGO_CUPS_ECOGRAFIA_GINECOSTETRICA = "881431";

    public enum Opciones_via_ingreso {

        REGISTRAR, MOSTRAR
    }

    public enum ETipoViaIngreso {

        VIA_INGRESO, TIPO;

        public static String get(String via_ingreso, ETipoViaIngreso tipo_via) {
            if (via_ingreso != null && !via_ingreso.trim().isEmpty()) {
                if (via_ingreso.matches("[0-9]*[_][0-9]*")) {
                    String via_tipo[] = via_ingreso.split("_");
                    return tipo_via == VIA_INGRESO ? via_tipo[0] : via_tipo[1];
                } else {
                    throw new ValidacionRuntimeException(
                            "@IVias_ingreso @Enum(Tipo_via) La via ingreso no valida");
                }
            } else {
                throw new ValidacionRuntimeException(
                        "@IVias_ingreso @Enum(Tipo_via) La via ingreso no puede estar vacia");
            }
        }
    }
}
